package com.cskaoyan.javase.exception.handle2.throw4.exercise;

/**
 * @description: 空接口Cloneable的作用
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/


/**
 *
 * 强调：
 * 异常类对象中只负责装异常信息，到底啥时候抛出异常，怎么处理异常，不是异常类说的算的
 *
 *
 */
public class Demo {
    public static void main(String[] args) {
        A a = new A();
        try {
            judgeImpl(a);
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
    }

    private static void judgeImpl(A a) throws CloneNotSupportedException {
        if (a instanceof MyCloneable){
            //如果A实现了MyCloneable
            //那么执行这里
            System.out.println("实现了空接口，允许克隆操作");
            System.out.println("进行克隆操作");
        }
        else {
            //A没有实现空接口
            //禁止克隆
            throw new CloneNotSupportedException("禁止克隆！");
        }
    }
}

interface MyCloneable{}

class A{}